<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>

<!--
	Copyright (c) 1999-2008 by Digital Mars
	All Rights Reserved
	Written by Walter Bright
	www.digitalmars.com
  -->

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" >
<title>std.zip - D Programming Language - Digital Mars</title>
<link rel="stylesheet" type="text/css" href="./style.css">
<link rel="icon" type="image/gif" href="./holy.gif" />
</head>

<body>
<div id="heading">
	<a href="http://www.digitalmars.com/"><img src="./dmlogo.gif" width="270" height="53" border="0" alt="www.digitalmars.com" align="left"></a>
	<p align="right">D Programming Language 1.0</p>


	<div id="headingNav">
	<ul>
	<li><a href="http://www.prowiki.org/wiki4d/wiki.cgi?DocComments/Phobos/StdZip" title="Read/write comments and feedback">Comments</a></li>
	<li><a href="http://www.digitalmars.com/d/1.0/index.html" title="D Programming Language" class="dlink">D</a></li>
	<li><a href="http://www.digitalmars.com/advancedsearch.html" title="Search Digital Mars web site">Search</a></li>
	<li><a href="http://www.digitalmars.com/" title="www.digitalmars.com">Home</a></li>
	</ul>
	</div>

	<div id="lastupdate">Last update Wed Oct  1 23:47:53 2008</div>
</div>

<!-- -->

<div id="navigation">
    <div class="navblock">
<form method="get" action="http://www.google.com/search">
<div id="searchbox">
<input id="q" name="q" size="10" value="RTL Search" onFocus='if(this.value == "RTL Search"){this.value="";}'>
<input type="hidden" id="domains" name="domains" value="www.digitalmars.com">
<input type="hidden" id="sitesearch" name="sitesearch" value="www.digitalmars.com/d/1.0/phobos">
<input type="hidden" id="sourceid" name="sourceid" value="google-search">
<input type="submit" id="submit" name="submit" value="Go">
</div>
</form>
<div id="toctop">
    <ul>
	<li><a href="http://www.digitalmars.com/d/1.0/index.html" title="D Programming Language">D ...</a></li>
	<li><a href="http://www.digitalmars.com/d/1.0/lex.html" title="D Language Specification">Language ...</a></li>
	<li><a href="phobos.html" title="D Runtime Library">Phobos ...</a></li>
	<li><a href="http://www.digitalmars.com/d/1.0/comparison.html" title="Language Comparisons">Comparisons ...</a></li>
    </ul>
</div>
</div>
    <div class="navblock">
<ul>
<li><a href="index.html" title="Index of all HTML files">Index</a></li>
</ul>
    <ul>
	<li><a href="object.html" title="root of object hierarchy">object</a></li>
    </ul>
    <h2><a href="phobos.html#std" title="D standard modules">std</a></h2>
    <ul>
	<li><a href="std.base64.html" title="Encode/decode base64 format">std.base64</a></li>
	<li><a href="std.bind.html" title="Function argument binding">std.bind</a></li>
	<li><a href="std.bitarray.html" title="Arrays of bits">std.bitarray</a></li>
	<li><a href="std.boxer.html" title="Box/unbox types">std.boxer</a></li>
	<li><a href="std.compiler.html" title="Information about the D compiler implementation">std.compiler</a></li>
	<li><a href="std.conv.html" title="Conversion of strings to integers">std.conv</a></li>
	<li><a href="std.cover.html" title="D coverage analyzer">std.cover</a></li>
	<li><a href="std.cpuid.html" title="CPU identification">std.cpuid</a></li>
	<li><a href="std.ctype.html" title="Simple character classification">std.ctype</a></li>
	<li><a href="std.date.html" title="Date and time functions">std.date</a></li>
	<li><a href="std.demangle.html" title="Demangle D names">std.demangle</a></li>
	<li><a href="std.file.html" title="Basic file operations">std.file</a></li>
	<li><a href="std.format.html" title="Formatted conversions of values to strings">std.format</a></li>
	<li><a href="std.gc.html" title="Control the garbage collector">std.gc</a></li>
	<li><a href="std.intrinsic.html" title="Compiler built in intrinsic functions">std.intrinsic</a></li>
	<li><a href="std.math.html" title="the usual math functions">std.math</a></li>
	<li><a href="std.md5.html" title="Compute MD5 digests">std.md5</a></li>
	<li><a href="std.metastrings.html" title="Metaprogramming with strings">std.metastrings</a></li>
	<li><a href="std.mmfile.html" title="Memory mapped files">std.mmfile</a></li>
	<li><a href="std.openrj.html" title="Basic database">std.openrj</a></li>
	<li><a href="std.outbuffer.html" title="Assemble data into an array of bytes">std.outbuffer</a></li>
	<li><a href="std.outofmemory.html" title="Out of memory exception">std.outofmemory</a></li>
	<li><a href="std.path.html" title="Manipulate file names, path names, etc.">std.path</a></li>
	<li><a href="std.process.html" title="Create/destroy threads">std.process</a></li>
	<li><a href="std.random.html" title="Random number generation">std.random</a></li>
	<li><a href="std.regexp.html" title="regular expressions">std.regexp</a></li>
	<li><a href="std.signals.html" title="Signals">std.signals</a></li>
	<li><a href="std.socket.html" title="Sockets">std.socket</a></li>
	<li><a href="std.socketstream.html" title="Stream for a blocking, connected Socket">std.socketstream</a></li>
	<li><a href="std.stdint.html" title="Integral types for various purposes">std.stdint</a></li>
	<li><a href="std.stdio.html" title="Standard I/O">std.stdio</a></li>
	<li><a href="std.cstream.html" title="Stream I/O">std.cstream</a></li>
	<li><a href="std.stream.html" title="Stream I/O">std.stream</a></li>
	<li><a href="std.string.html" title="Basic string operations">std.string</a></li>
	<li><a href="std.system.html" title="Inquire about the CPU, operating system">std.system</a></li>
	<li><a href="std.thread.html" title="Thread operations">std.thread</a></li>
	<li><a href="std.traits.html" title="Type traits">std.traits</a></li>
	<li><a href="std.typetuple.html" title="Type tuples">std.typetuple</a></li>
	<li><a href="std.uni.html" title="Unicode classification">std.uni</a></li>
	<li><a href="std.uri.html" title="Encode and decode Uniform Resource Identifiers (URIs)">std.uri</a></li>
	<li><a href="std.utf.html" title="Encode and decode utf character encodings">std.utf</a></li>
	<li><a href="std.zip.html" title="Read/write zip archives">std.zip</a></li>
	<li><a href="std.zlib.html" title="Compression / Decompression of data">std.zlib</a></li>
	<li><a href="std.c.fenv.html" title="Floating point environment">std.c.fenv</a></li>
	<li><a href="std.c.locale.html" title="Locale">std.c.locale</a></li>
	<li><a href="std.c.math.html" title="Math">std.c.math</a></li>
	<li><a href="std.c.process.html" title="Process">std.c.process</a></li>
	<li><a href="std.c.stdarg.html" title="Variadic arguments">std.c.stdarg</a></li>
	<li><a href="std.c.stddef.html" title="Standard definitions">std.c.stddef</a></li>
	<li><a href="std.c.stdio.html" title="Standard I/O">std.c.stdio</a></li>
	<li><a href="std.c.stdlib.html" title="Standard library">std.c.stdlib</a></li>
	<li><a href="std.c.string.html" title="Strings">std.c.string</a></li>
	<li><a href="std.c.time.html" title="Time">std.c.time</a></li>
	<li><a href="std.c.wcharh.html" title="Wide characters">std.c.wcharh</a></li>
	<li><a href="std.windows.charset.html" title="Conversion to/from Windows character sets">std.windows.charset</a></li>
	<li><a href="phobos.html#std_windows" title="Modules specific to Windows">std.windows</a></li>
	<li><a href="phobos.html#std_linux" title="Modules specific to Windows">std.linux</a></li>
	<li><a href="phobos.html#std_c_windows" title="C Windows API">std.c.windows</a></li>
	<li><a href="phobos.html#std_c_linux" title="C Linux API">std.c.linux</a></li>
    </ul>
</div>
</div>
<div id="content">
    <h1><a href="./htmlsrc/std.zip.html">std.zip</a></h1>
    
Read/write data in the <a href="http://www.info-_zip.org">zip archive</a> format.
 Makes use of the etc.c.zlib compression library.<br><br>
<span style="color:red">BUGS:</span><br>
<ul>
	<li>Multi-disk zips not supported.</li>
	<li>Only Zip version 20 formats are supported.</li>
	<li>Only supports compression modes 0 (no compression) and 8 (deflate).</li>
	<li>Does not support encryption.</li>
	<li><a href="http://d.puremagic.com/issues/show_bug.cgi?id=592">Bugzilla 592</a></li>
	<li><a href="http://d.puremagic.com/issues/show_bug.cgi?id=1832">Bugzilla 1832</a></li>
	<li><a href="http://d.puremagic.com/issues/show_bug.cgi?id=2137">Bugzilla 2137</a></li>
	<li><a href="http://d.puremagic.com/issues/show_bug.cgi?id=2138">Bugzilla 2138</a></li>
	</ul><br><br>
<dl>
<dt><big>class <a href="./htmlsrc/std.zip.html#L33" title="At line 33.">ZipException</a> : Exception;</big></dt>
<dd>
Thrown on error.
 <br><br>
<dl>
<dt><big><a href="./htmlsrc/std.zip.html#L35" title="At line 35.">this</a>(string <i>msg</i>);</big></dt>
<dd></dd></dl></dd>
<dt><big>class <a href="./htmlsrc/std.zip.html#L44" title="At line 44.">ArchiveMember</a>;</big></dt>
<dd>
A member of the ZipArchive.
 <br><br>
<dl>
<dt><big>ushort <a href="./htmlsrc/std.zip.html#L46" title="At line 46.">madeVersion</a>;</big></dt>
<dd>
Read Only<br><br></dd>
<dt><big>ushort <a href="./htmlsrc/std.zip.html#L47" title="At line 47.">extractVersion</a>;</big></dt>
<dd>
Read Only<br><br></dd>
<dt><big>ushort <a href="./htmlsrc/std.zip.html#L48" title="At line 48.">flags</a>;</big></dt>
<dd>
Read/Write: normally set to 0<br><br></dd>
<dt><big>ushort <a href="./htmlsrc/std.zip.html#L49" title="At line 49.">compressionMethod</a>;</big></dt>
<dd>
Read/Write: 0 for compression, 8 for deflate<br><br></dd>
<dt><big>std.date.DosFileTime <a href="./htmlsrc/std.zip.html#L50" title="At line 50.">time</a>;</big></dt>
<dd>
Read/Write: Last modified time of the member. It's in the DOS date/time format.<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L51" title="At line 51.">crc32</a>;</big></dt>
<dd>
Read Only: cyclic redundancy check &#40;CRC&#41; value<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L52" title="At line 52.">compressedSize</a>;</big></dt>
<dd>
Read Only: size of data of member in compressed form.<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L53" title="At line 53.">expandedSize</a>;</big></dt>
<dd>
Read Only: size of data of member in expanded form.<br><br></dd>
<dt><big>ushort <a href="./htmlsrc/std.zip.html#L54" title="At line 54.">diskNumber</a>;</big></dt>
<dd>
Read Only: should be 0.<br><br></dd>
<dt><big>ushort <a href="./htmlsrc/std.zip.html#L55" title="At line 55.">internalAttributes</a>;</big></dt>
<dd>
Read/Write<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L56" title="At line 56.">externalAttributes</a>;</big></dt>
<dd>
Read/Write<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L58" title="At line 58.">offset</a>; [private]</big></dt>
<dd></dd>
<dt><big>string <a href="./htmlsrc/std.zip.html#L65" title="At line 65.">name</a>;</big></dt>
<dd>
Read/Write: Usually the file name of the archive member; it is used to
 index the archive directory for the member. Each member must have a unique
 name[]. Do not change without removing member from the directory first.
     <br><br></dd>
<dt><big>ubyte[] <a href="./htmlsrc/std.zip.html#L67" title="At line 67.">extra</a>;</big></dt>
<dd>
Read/Write: extra data for this member.<br><br></dd>
<dt><big>string <a href="./htmlsrc/std.zip.html#L68" title="At line 68.">comment</a>;</big></dt>
<dd>
Read/Write: comment associated with this member.<br><br></dd>
<dt><big>ubyte[] <a href="./htmlsrc/std.zip.html#L69" title="At line 69.">compressedData</a>;</big></dt>
<dd>
Read Only: data of member in compressed form.<br><br></dd>
<dt><big>ubyte[] <a href="./htmlsrc/std.zip.html#L70" title="At line 70.">expandedData</a>;</big></dt>
<dd>
Read/Write: data of member in uncompressed form.<br><br></dd></dl></dd>
<dt><big>class <a href="./htmlsrc/std.zip.html#L96" title="At line 96.">ZipArchive</a>;</big></dt>
<dd>
Object representing the entire archive.
 ZipArchives are collections of ArchiveMembers.
 <br><br>
<dl>
<dt><big>ubyte[] <a href="./htmlsrc/std.zip.html#L98" title="At line 98.">data</a>;</big></dt>
<dd>
Read Only: array representing the entire contents of the archive.<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L99" title="At line 99.">endrecOffset</a>;</big></dt>
<dd></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L101" title="At line 101.">diskNumber</a>;</big></dt>
<dd>
Read Only: 0 since multi-disk zip archives are not supported.<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L102" title="At line 102.">diskStartDir</a>;</big></dt>
<dd>
Read Only: 0 since multi-disk zip archives are not supported.<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L103" title="At line 103.">numEntries</a>;</big></dt>
<dd>
Read Only: number of ArchiveMembers in the directory.<br><br></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L104" title="At line 104.">totalEntries</a>;</big></dt>
<dd>
Read Only: same as totalEntries.<br><br></dd>
<dt><big>string <a href="./htmlsrc/std.zip.html#L105" title="At line 105.">comment</a>;</big></dt>
<dd>
Read/Write: the archive comment. Must be less than 65536 bytes in length.<br><br></dd>
<dt><big>ArchiveMember[string] <a href="./htmlsrc/std.zip.html#L119" title="At line 119.">directory</a>;</big></dt>
<dd>
Read Only: array indexed by the name of each member of the archive.
 <br><br>
<b>Example:</b><br>All the members of the archive can be accessed with a foreach loop:
 <pre class="d_code">

 <span class="i">ZipArchive</span> <span class="i">archive</span> = <span class="k">new</span> <span class="i">ZipArchive</span>(<span class="i">data</span>);
 <span class="k">foreach</span> (<span class="i">ArchiveMember</span> <span class="i">am</span>; <span class="i">archive</span>.<span class="i">directory</span>)
 {
     <span class="i">writefln</span>(<span class="sl">"member name is '%s'"</span>, <span class="i">am</span>.<span class="i">name</span>);
 }
 
</pre><br><br></dd>
<dt><big><a href="./htmlsrc/std.zip.html#L137" title="At line 137.">this</a>();</big></dt>
<dd>
Constructor to use when creating a new archive.
     <br><br></dd>
<dt><big>void <a href="./htmlsrc/std.zip.html#L143" title="At line 143.">addMember</a>(ArchiveMember <i>de</i>);</big></dt>
<dd>
Add de to the archive.
     <br><br></dd>
<dt><big>void <a href="./htmlsrc/std.zip.html#L150" title="At line 150.">deleteMember</a>(ArchiveMember <i>de</i>);</big></dt>
<dd>
Delete de from the archive.
     <br><br></dd>
<dt><big>void[] <a href="./htmlsrc/std.zip.html#L165" title="At line 165.">build</a>();</big></dt>
<dd>
Construct an archive out of the current members of the archive.<br><br>
Fills in the properties data[], diskNumber, diskStartDir, numEntries,
 totalEntries, and directory[].
 For each ArchiveMember, fills in properties crc32, compressedSize,
 compressedData[].<br><br> <br><br>
<b>Returns:</b><br>
array representing the entire archive.<br><br></dd>
<dt><big><a href="./htmlsrc/std.zip.html#L301" title="At line 301.">this</a>(void[] <i>buffer</i>);</big></dt>
<dd>
Constructor to use when reading an existing archive.<br><br>
Fills in the properties data[], diskNumber, diskStartDir, numEntries,
 totalEntries, comment[], and directory[].
 For each ArchiveMember, fills in
 properties madeVersion, extractVersion, flags, compressionMethod, time,
 crc32, compressedSize, expandedSize, compressedData[], diskNumber,
 internalAttributes, externalAttributes, name[], extra[], comment[].
 Use expand&#40;&#41; to get the expanded data for each ArchiveMember.<br><br> <br><br>
<b>Params:</b><br>
<table>
<tr><td><i>buffer</i></td><td>the entire contents of the archive.</td></tr></table><br></dd>
<dt><big>ubyte[] <a href="./htmlsrc/std.zip.html#L405" title="At line 405.">expand</a>(ArchiveMember <i>de</i>);</big></dt>
<dd>
Decompress the contents of archive member de and return the expanded
 data.<br><br>
Fills in properties extractVersion, flags, compressionMethod, time,
 crc32, compressedSize, expandedSize, expandedData[], name[], extra[].
     <br><br></dd>
<dt><big>ushort <a href="./htmlsrc/std.zip.html#L462" title="At line 462.">getUshort</a>(int <i>i</i>);</big></dt>
<dd></dd>
<dt><big>uint <a href="./htmlsrc/std.zip.html#L476" title="At line 476.">getUint</a>(int <i>i</i>);</big></dt>
<dd></dd>
<dt><big>void <a href="./htmlsrc/std.zip.html#L488" title="At line 488.">putUshort</a>(int <i>i</i>, ushort <i>us</i>);</big></dt>
<dd></dd>
<dt><big>void <a href="./htmlsrc/std.zip.html#L501" title="At line 501.">putUint</a>(int <i>i</i>, uint <i>ui</i>);</big></dt>
<dd></dd></dl></dd></dl>
    <br><br>
<br><br>
<!-- Google ad -->
<script type="text/javascript"><!--
/**/google_ad_client = "pub-5628673096434613";
/**/google_ad_width = 728;
/**/google_ad_height = 90;
/**/google_ad_format = "728x90_as";
/**/google_ad_channel ="6203743411";
/**/google_page_url = document.location;
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>


<div id="copyright">
Copyright &copy; 1999-2008 by Digital Mars, All Rights Reserved |
Page generated by <a href="http://code.google.com/p/dil">dil</a> on Wed Oct  1 23:47:53 2008
</div>

</body>
</html>